import request from "@/utils/request";
import { type RouteVO } from "@/api/system/menu";

// 菜单基础URL
const MENU_BASE_URL = "/admin/index";

const PermissionAPI = {
    /**
     * 获取用户信息
     * @returns 用户信息
     */
    getUserInfo() {
        return request<any, userInfo[]>({
            url: `${MENU_BASE_URL}/index`,
            method: "get",
        });
    },

    /**
     * 获取当前用户的路由列表
     * <p/>
     * 无需传入角色，后端解析token获取角色自行判断是否拥有路由的权限
     *
     * @returns 路由列表
     */
    getRoutes() {
        return request<any, RouteVO[]>({
            url: `${MENU_BASE_URL}/menus`,
            method: "get",
        });
    },

    /**
     * 获取操作权限
     * @returns 按钮操作权限 ["xxx：xxx：xxx"]
     */
    getBtnPerm() {
        return request<any, string[]>({
            url: `${MENU_BASE_URL}/operations`,
            method: "get",
        });
    },

    /**
     * 切换用户类型
     * @returns 按钮操作权限 ["xxx：xxx：xxx"]
     */
    changeCurrentType(params: changeCurrentType) {
        return request<changeCurrentType, string[]>({
            url: `${MENU_BASE_URL}/changeCurrentType`,
            method: "post",
            params,
        });
    },
};

export default PermissionAPI;

type user = {
    id: number; // 角色id
    username: string; // 用户昵称
    realname: string; // 用户真是名称
    phone: string; // 用户手机号
};
type roleList = {
    id: number; // 角色di
    type_name: string; // 角色名称
};

export interface userInfo {
    current_user_type: string; // 当前用户类型
    user: user; // 用户信息
    user_type_list: roleList; // 当前用户类型
    jszc_tel: string; // 技术支持电话
}

export interface changeCurrentType {
    current_user_type: string;
}
